/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package controller;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.validation.BindException;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.AbstractCommandController;
import model.Usuario;
import model.Viaje;
import model.Participante;
import model.Voto;
import java.util.List;
import org.apache.log4j.Level;
import org.apache.log4j.Logger;
import org.apache.log4j.xml.DOMConfigurator;
import service.ComentarioService;
import service.UsuarioService;
import service.LugarService;
import service.ParticipanteService;
import service.SugerenciaService;
import service.ViajeService;
import service.VotoService;


/**
 *
 * @author Geral Zerpa
 * @author Fatima Pestan
 */
public class OpcionesVoto extends AbstractCommandController {

        private UsuarioService usuarioService;
        private ViajeService viajeService;
        private ParticipanteService participanteService;
        private ComentarioService comentarioService;
        private SugerenciaService sugerenciaService;
        private VotoService votoService;
        private static Logger loggers = null;

    public void setVotoService(VotoService votoService) {
        this.votoService = votoService;
    }
    public void setParticipanteService(ParticipanteService participanteService) {
        this.participanteService = participanteService;
    }

    public void setViajeService(ViajeService viajeService) {
        this.viajeService = viajeService;
    }

    public void setSugerenciaService(SugerenciaService sugerenciaService) {
        this.sugerenciaService = sugerenciaService;
    }

    public void setComentarioService(ComentarioService comentarioService) {
        this.comentarioService = comentarioService;
    }

    public void setUsuarioService(UsuarioService usuarioService) {
        this.usuarioService = usuarioService;
    }

       public OpcionesVoto() {
        this.setCommandClass(Usuario.class);
    }

    @Override
     protected ModelAndView handle(HttpServletRequest request, HttpServletResponse response, Object form, BindException errors) throws Exception {
         Map model = new HashMap();

        Usuario user2;
        Viaje via;
        System.out.println("aqui voto");
        user2 = (Usuario) usuarioService.getUsuario(Long.parseLong(request.getParameter("ux")));
        via = (Viaje) viajeService.getViaje(Long.parseLong(request.getParameter("mv")));
        
        List Opciones;

        Opciones = sugerenciaService.getListaSugerencia(Long.parseLong(request.getParameter("mv")));
        List per;
        per = participanteService.getMisViajesPar2(Long.parseLong(request.getParameter("ux")), Long.parseLong(request.getParameter("mv")));
        Participante p;
        p = (Participante) per.get(0);
        List vot;
        vot = votoService.getVotoList(p.getIdParticipa());
        if (vot.isEmpty()){
        request.getSession().setAttribute("clienteList", null);
        model.put("opcion", Opciones);
        model.put("usuario", user2);
        model.put("viaje", via);
        return new ModelAndView("votar", model);
    }
    else{
        List Comentarios;
        Comentarios = comentarioService.getListaComentario(Long.parseLong(request.getParameter("mv")));
        request.getSession().setAttribute("clienteList", null);
        model.put("usuario", user2);
        model.put("viaje", via);
        model.put("comentar",Comentarios);
        model.put("Res", "usted ya VOTO");
        return new ModelAndView("ViajeInvitado", model);
        }
    }
}
